Міністерство Освіти і Науки України
Національний Університет “Львівська Політехніка”
Кафедра ЕОМ
ОЗНАЙОМЛЕННЯ З ТЕХНОЛОГІЄЮ ПАРАЛЕЛЬНОГО ПРОГРАМУВАННЯ ЗАСОБАМИ МРІ
Методичні вказівкидо лабораторної роботи № 3 з курсу “Паралельні та розподілені обчислення”
для студентів базового напряму 6.0915 - “Комп’ютерна інженерія”
Затвердженона засіданні кафедри”Електронні обчислювальні машини”Протокол № _ від 2010 року
Львів – 2010
Ознайомлення з технологією паралельного програмування засобами МРІ: Методичні вказівки до лабораторної роботи № 3 з курсу “Паралельні та розподілені обчислення” для студентів базового напряму 6.0915 - “Комп’ютерна інженерія”/ Укладачі: Є. Ваврук, О. Акимишин – Львів: Національний університет “Львівська політехніка”, 2010, 14 с.
Укладачі: Є. Ваврук, к.т.н., доцент.
О. Акимишин, к.т.н., асистент
Відповідальний за випуск: Мельник А. О., професор, завідувач кафедри
Рецензенти: Попович Р.Б., к. т. н, доцент
Юрчак І.Ю., к. т. н, доцент
МЕТА РОБОТИ
Вивчити основні поняття та визначення МРІ. Набути навиків розробки паралельних програм з використанням MPI.
ТЕОРЕТИЧНІ ВІДОМОСТІ:
У обчислювальних системах з розподіленою пам'яттю процесори працюють незалежно один від одного. Для організації паралельних обчислень в таких умовах необхідно мати можливість розподіляти обчислювальне навантаження і організувати інформаційну взаємодію (передачу даних) між процесорами. Одним з способів взаємодії між паралельними процесами є передача повідомлень між ними, що відображено в самій назві технології МРІ (message passing interface) – інтерфейс передачі повідомлень.
Для розподілу обчислень між процесорами необхідно проаналізувати алгоритм розв’язку задачі, виділити інформаційно незалежні фрагменти обчислень, виконати їх програмну реалізацію і розмістити отримані частини програми на різних процесорах. В MPI використовуються простіший підхід - для виконання завдання розробляється одна програма, яка запускається одночасно на виконання на всіх наявних процесорах. При цьому для того, щоб уникнути ідентичності обчислень на різних процесорах, можна, по-перше, підставляти різні дані для програми на різних процесорах, а по-друге, використовувати наявні в MPI засоби для ідентифікації процесора, на якому виконується програма (тим самим надається можливість організувати відмінності в обчисленнях залежно від використовуваного програмою процесора).
Інтерфейс МРІ підтримує реалізацію програм для MIMD систем (Multiple Instructions Multiple Data), проте відлагодження таких програм є не тривіальною задачею. Тому на практиці для написання програм в більшості випадків застосовується SPMD (single program multiple processes) модель паралельного програмування - "одна програма безліч процесів".
1. MPI: основні поняття і визначення
MPI - це стандарт, якому повинні задовольняти засоби організації передачі повідомлень. Крім того MPI - це програмні засоби, які забезпечують можливість передачі повідомлень і при цьому відповідають всім вимогам стандарту MPI. Згідно стандарту, ці програмні засоби повинні бути організовані у вигляді бібліотек програмних функцій (бібліотеки MPI) і повинні бути доступні для найширше використовуваних алгоритмічних мов C і Fortran. Подібну "подвійність" MPI слід враховувати при використанні термінології. Як правило, абревіатура MPI застосовується при згадці стандарту, а поєднання "бібліотека MPI" указує на ту або іншу програмну реалізацію стандарту. Оскільки достатньо часто скорочено позначення MPI використовується і для бібліотек MPI, тому для правильної інтерпретації терміну, слід враховувати контекст.
1.1. Поняття паралельної програми. Під паралельною програмою в MPI розуміється множина одночасно виконуваних процесів. Процеси можуть виконуватися як на різних процесорах, так і на одному процесорі можуть виконуватися і декілька процесів (в цьому випадку їх виконання здійснюється в режимі розділення часу). У граничному випадку для виконання паралельної програми може використовуватися оди...